home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 729 / bbbbs / bbbbs54.lzh / rexx / Make_BrowseList.baud < prev    next >
Text File  |  1991-12-05  |  4KB  |  197 lines

  1. /*
  2.    $VER: 4.1 Make_BrowseList.baud 17 Nov 1991 (17.11.91)
  3.    places archived, user defined, browselist in user's email
  4.    the actual archiving is done by ArcBrowse.rexx thru AREXX
  5.    copyright 1991 Richard Lee Stockton  FREELY DISTRIBUTABLE
  6. */
  7.  
  8. SIGNAL ON ERROR
  9. SIGNAL ON SYNTAX
  10. SIGNAL ON FAILURE
  11. SIGNAL ON BREAK_C
  12. SIGNAL ON BREAK_E
  13. CR='0D'x
  14.  
  15. name=''
  16. ARG name .
  17. IF name='' THEN EXIT(0);
  18. IF GETCLIP('BBS_BROWSE')~='' THEN
  19.   DO
  20.     SAY 'Sorry, only one archiving at a time.  Please try again later.'CR
  21.     EXIT(0);
  22.   END
  23. CALL SETCLIP('BBS_BROWSE','ON')
  24.  
  25. figarg='s:CONFIG.BBS'
  26. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  27. x=OPEN(f,figarg,'R')
  28. IF x=0 THEN
  29.   DO
  30.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  31.     CALL SETCLIP('BBS_BROWSE')
  32.     EXIT(20)
  33.   END
  34.  
  35. lynes.=''
  36. DO i=1 TO 8
  37.   lynes.i=READLN(f)
  38. END
  39. CALL CLOSE(f)
  40.  
  41. compos=POS('/*',lynes.1)
  42. IF compos>0 THEN lynes.1=LEFT(lynes.1,compos-1)
  43. bbsname = STRIP(lynes.1)
  44.  
  45. sysop   = WORD(lynes.2,1)
  46.  
  47. bbspath = WORD(lynes.6,1)
  48. IF ~EXISTS(bbspath) THEN
  49.   DO
  50.     SAY bbspath 'does not exist!'
  51.     CALL SETCLIP('BBS_BROWSE')
  52.     EXIT(20)
  53.   END
  54. testchar=RIGHT(bbspath,1)
  55. IF testchar~='/' & testchar~=':' THEN bbspath=bbspath'/'
  56.  
  57. libpath = WORD(lynes.8,1)
  58. IF ~EXISTS(libpath) THEN
  59.   DO
  60.     SAY 'The library path, 'libpath', does not exist!'
  61.     CALL SETCLIP('BBS_BROWSE')
  62.     EXIT(22)
  63.   END
  64. testchar=RIGHT(libpath,1)
  65. IF testchar~='/' & testchar~=':' THEN libpath=libpath'/'
  66.  
  67. IF ~EXISTS(bbspath'Users/'name) THEN EXIT(1)
  68.  
  69. SAY CR
  70. SAY 'This background routine will archive a selected list of file'CR
  71. SAY 'descriptions from the' bbsname 'file libraries,'CR
  72. SAY 'The archive will then be saved in email for you.'CR
  73. SAY CR
  74. SAY 'Once you have made your choice of libraries, you will be returned'CR
  75. SAY 'to the main menu(s), and the rest of the process will keep running in'CR
  76. SAY 'the background (ain''t Amiga multi-tasking great?). If the archive'CR
  77. SAY 'is complete before you logout this session, you will be notified online.'CR
  78.  
  79. SAY CR
  80. OPTIONS PROMPT 'Continue? (nY) '
  81. PULL temp
  82. IF LEFT(temp,1)='N' THEN
  83.   DO
  84.     CALL SETCLIP('BBS_BROWSE')
  85.     EXIT(0);
  86.   END
  87.  
  88. /* get level, lastbrowse, & excludes from userfile */
  89. SAY CR
  90. x=OPEN(f,bbspath'Users/'name,'R')
  91. IF x=0 THEN EXIT(24);
  92. user.=''
  93. DO i=1 TO 16 WHILE ~EOF(f)
  94.   line=READLN(f)
  95. END
  96. lastbrowse=STRIP(WORD(line,1))
  97. DO i=17 TO 19 WHILE ~EOF(f)
  98.   line=READLN(f)
  99. END
  100. level=READLN(f)
  101. excludes=READLN(f)
  102. CALL CLOSE(f)
  103.  
  104. x=OPEN(f,bbspath'Numbers/LastFile','R')
  105. IF x=0 THEN EXIT(25);
  106. lastfile=STRIP(READLN(f))
  107. CALL CLOSE(f)
  108.  
  109. IF lastbrowse<lastfile THEN
  110.   DO
  111.     OPTIONS PROMPT 'Archive only NEW file descriptions? (yN) '
  112.     PULL temp
  113.     IF LEFT(UPPER(temp),1)~='Y' THEN lastbrowse=0
  114.   END
  115. ELSE lastbrowse=0
  116.  
  117. SAY CR
  118. OPTIONS PROMPT 'Sort by [L]ibrary or [A]ll files together? (lA) '
  119. PULL libflag
  120. IF libflag~='L' THEN libflag='A'
  121.  
  122. SAY CR
  123. OPTIONS PROMPT 'Sort by [D]ate or [A]lphabetically? (dA) '
  124. PULL alphaflag
  125. IF alphaflag~='D' THEN alphaflag='A'
  126.  
  127. SAY CR
  128. OPTIONS PROMPT 'Archive file descriptions from ALL available libraries? (nY) '
  129. PULL doit
  130. IF LEFT(doit,1)~='N' THEN doit='Y'
  131.  
  132. SAY CR
  133. SAY 'Hang on while I gather the library list...'CR
  134. x=OPEN(f,bbspath'Lists/Libraries','R')
  135. IF x=0 THEN
  136.   DO
  137.     CALL SETCLIP('BBS_BROWSE')
  138.     EXIT(26);
  139.   END
  140. libs.=''
  141. DO i=1
  142.   line=READLN(f)
  143.   IF EOF(f) | line='END' THEN LEAVE i
  144.   num=WORD(line,1)
  145.   IF DATATYPE(num,'N') THEN
  146.     DO
  147.       num=num%1
  148.       IF num>0 & num<100 THEN libs.num=WORD(line,2)
  149.     END
  150. END
  151. CALL CLOSE(f)
  152.  
  153. SAY CR
  154. liblist=''
  155. DO i=1 TO 99
  156.   IF i>level | libs.i='' THEN ITERATE i
  157.   IF FIND(UPPER(excludes),UPPER(libs.i))>0 THEN ITERATE i
  158.   temp=''
  159.   IF doit='N' THEN
  160.     DO
  161.       OPTIONS PROMPT 'Include the' CENTER(libs.i,16) 'library?  yes-no-start-quit-? (yNsq?) '
  162.       PULL temp
  163.     END
  164.   IF temp='?' THEN
  165.     DO
  166.       SAY CR
  167.       SAY 'Y - Yes, include this library in the archive.'CR
  168.       SAY 'N - No, skip this library.'CR
  169.       SAY 'S - Start archiving with the current library list.'CR
  170.       SAY 'Q - Quit without archiving.'CR
  171.       SAY CR
  172.       i=i-1
  173.     END
  174.   IF temp='Q' THEN SIGNAL BREAK_E
  175.   IF temp='S' THEN LEAVE i
  176.   IF doit='Y' | LEFT(STRIP(temp),1)='Y' THEN liblist=STRIP(liblist libs.i)
  177. END
  178.  
  179. SAY CR
  180. SAY 'Archiving...'CR
  181. SAY 'When completed, the archive will be attached to email addressed to you.'CR
  182. SAY CR
  183. ADDRESS AREXX ArcBrowse.rexx name lastbrowse alphaflag libflag liblist
  184. EXIT(0);
  185.  
  186.  
  187. ERROR:
  188. SYNTAX:
  189. FAILURE:
  190. BREAK_C:
  191. BREAK_E:
  192. CALL SETCLIP('BBS_BROWSE')
  193. EXIT(0);
  194.  
  195.  
  196. /* end of Make_BrowseList.rexx */
  197.